package com.bupt.service.common;

import com.bupt.exception.BaseException;

import javax.servlet.http.HttpServletRequest;

public interface StrategyService {

    /**
     * 规划，规划只分配工作路由和保护路由，涉及恢复路由的只在抗毁部分
     * @param request
     * @param projectId 需要规划的项目
     * @param strategy 规划的策略，最小长度，负载均衡，最小跳
     * @param layer    需要规划的层级，默认全部层级都规划
     * @param resLimit  默认资源都可以用到100，取值时1~100，暂时无效
     * @param hopLimit  跳数限制，默认不限制跳数
     * @param selectedTraffic 需要规划的业务，默认规划全部业务
     * @return 规划成功的业务数量
     * @throws BaseException
     */
    Object plan(HttpServletRequest request, String projectId, String strategy, String layer, Integer resLimit, Integer hopLimit, String[] selectedTraffic) throws BaseException;

     Object planRes(String projectId)throws BaseException;

}
